#ifndef __myvari__
#define __myvari__

typedef bool bit;             // 布尔位
typedef unsigned char uchar;  // 无符号8位变量

//==================================================================
#define HUB8_OE_ON 1  // HUB8OE 极性

#define IAP_ADDRESS_STYTE3 1     // EEPROM 显示模式
#define IAP_ADDRESS_MYTEMP 2     // EEPROM 温度偏移
#define IAP_ADDRESS_WUXIU 3      // EEPROM 午休
#define IAP_ADDRESS_AUTOLIGHT 4  // EEPROM 自动亮度
#define IAP_ADDRESS_LIGHT 5      // EEPROM 亮度高低
#define IAP_ADDRESS_GREEN 6      // EEPROM 绿色
//==================================================================

#define STATE_DISPLAY_DEMO_MAX0 3  // 显示演示最后行数
#define STATE_DISPLAY_DEMO_MAX1 4  // 一直演示状态显示演示最后行数
#define STATE_DISPLAY_WIFI_B 11    // 显示WIFI开始
#define STATE_DISPLAY_WIFI_E 14    // 显示WIFI结束

#define STATE_HUB_COLON 10  // 冒号 COLON
#define STATE_HUB_EMPTY 11  // 空格 EMPTY
//==================================================================

bit AUTOLIGHT = true;  // 自动亮度
bit WUXIU = true;      // 是否午休
bit LIGHT = true;      // 亮度高低
bit GREEN = true;      // 使用绿色

bit WIFIOK = false;    // WIFI正常
bit NTPNOTOK = false;  // 网络NTP异常

bit AutoSet = false;    // 自动设置亮度
bit Always = false;     // 一直演示
bit UpDown = false;     // 是否倒置
bit SaveEPROM = false;  // 可保存到EEPROM

bit TenMSec = false;  // 10毫秒
bit HafSec = false;   // 半秒改变，闪烁时显示标志
bit OneSec = false;   // 每秒一变
bit TriSec = false;   // 每三秒

uchar l_tmplastsecend;                              // 上一秒
uchar l_tmpgetdate[9] = { 1, 2, 3, 4, 7, 13, 17 };  // 取得的时间和温度 BCD秒分时日月周年17-07-13 00:00:00
uchar l_tmpdisplay[8] = { 11 };                     // 显示的时间 8位数字格式：16-58-10，默认显示空
uchar XdataDisplay[16][8];                          // 显示字模
uchar l_tmpdisplayNYR[8];                           // 显示的年月日 8位数字格式：2018.01.11
uchar XdataDisplayR[32][8];                         // 显示缓存，全板是32
uchar l_tmpPreSecond;                               // 保存上一秒
uchar l_temPreShehui;                               // 保存上一句社会

bit tx_b_show = false;  // 特效执行，每10ms执行一次
uchar tx_i_show_row;    // 显示第几行，共16行，（一个字16行）
uchar tx_i_show_row_bak;

int K = 0;    // 大于256，使用int类型
uchar N = 0;  // 进度条当前值 0-64
uchar H = 0;  // 秒指示进度条当前值 0-64
uchar F = 0;  // 10ms计数到半秒

#define STATE_MYSTYTE3_MAX 2      // 样式: 最大样式
#define STATE_MYSTYTE3_BIGALL 0   // 样式: 0-两个数字全屏
#define STATE_MYSTYTE3_BIGNYR 1   // 样式: 1-两个数字加日期
#define STATE_MYSTYTE3_SHEHUI3 2  // 样式: 2-四个汉字加时分秒
// #define STATE_MYSTYTE3_SHEHUIW 3  // 样式: 2-四个汉字加时分加星期
uchar MyStyte3;                   // 样式

#define STATE_MYLIGHT_OFF 0   // 亮度：不亮
#define STATE_MYLIGHT_MIN 2   // 亮度：最暗
#define STATE_MYLIGHT_2 4     // 亮度：暗
#define STATE_MYLIGHT_4 7     // 亮度：亮
#define STATE_MYLIGHT_MAX 10  // 亮度：最亮
uchar MyLigth;                // 亮度： 1 - 12

uchar l_tmpligth[9][2] = {
  // 各整点时间段的亮度，固定有9个时段，设置了自动亮度有效
  { 1, STATE_MYLIGHT_OFF },
  { 4, STATE_MYLIGHT_MIN },
  { 7, STATE_MYLIGHT_2 },
  { 8, STATE_MYLIGHT_4 },
  { 10, STATE_MYLIGHT_MAX },
  { 15, STATE_MYLIGHT_MAX },
  { 17, STATE_MYLIGHT_4 },
  { 19, STATE_MYLIGHT_2 },
  { 22, STATE_MYLIGHT_MIN },
};

#define STATE_MYDISPLAY_NORMAL 0   // 显示状态：0-正常
#define STATE_MYDISPLAY_DEMO 1     // 显示状态：1-演示
#define STATE_MYDISPLAY_WIFI 2     // 显示状态：2-WIFI
uchar MyDisplay;                   // 显示状态
uchar I_display;                   // 显示的当前行数

#define STATE_MYSYSTEM_MAX 2            // 系统状态：最大编号
#define STATE_MYSYSTEM_AUTOLIGTH 0      // 系统状态：0-设置自动亮度
#define STATE_MYSYSTEM_WUXIU 1          // 系统状态：1-亮度高低
#define STATE_MYSYSTEM_LIGTH 2          // 系统状态：2-是否午休
uchar MySystem = STATE_MYSYSTEM_LIGTH;  // 系统状态：0-设置自动亮度；1-亮度高低；2-是否午休，默认为最后一个，当第一次按键时++


int LA = 13;     //D7
int LB = 15;     //D8
int LC = 3;      //RX
int LD = 1;      //TX
int EN = 12;     //D6
int LAT = 2;     //D4
int CLK = 16;    //D0
int DATR1 = 14;  //D5
int DATR2 = 4;   //D2
int DATG1 = 5;   //D1
int DATG2 = 0;   //D3

// int K2 = 0;  // + (和开发板上的编程FALSH开关GPIO0复用，开机时不能按下)
// int K1 = 4;  // s 设置
// int K3 = 5;  // -
// #define RESET_PIN 12  // D6 reset wifi
//==================================================================


#endif